package estrategiasRecomendadorAmistad;

import java.util.Map;
import java.util.Map.Entry;

import dataTransferObject.Mascota;
import dataTransferObject.Usuario;

public abstract class EstrategiaSexoMascotas extends
		EstrategiaMascotasCompatibles {
	
	public boolean filtroSexoMascota(Mascota mascotaAmigo,
			Mascota mascotaUsuario) {
		
		return mascotaAmigo.getSexo().equals(mascotaUsuario.getSexo());
			
	}
	
	public Double calcularAfinidad(Usuario posibleAmigo, Usuario usuario){
		Map<Mascota,Mascota> mascotas = super.mascotasAComparar(posibleAmigo, usuario);
		Double puntos = 0.0;
		
		for(Entry<Mascota, Mascota> parMascotas : mascotas.entrySet()){
			puntos += calcularAfinidadMascotas(parMascotas.getKey(), parMascotas.getValue());	
		}
		
		return puntos;
	}
	
	public abstract Double calcularAfinidadMascotas(Mascota usuario, Mascota posibleAmigo);


}
